Clojure
clojure.core のリストに関する var
Clojure におけるリストは、
clojure.lang.IPersistentList
を実装したインスタンス 関数
list
: 引数で指定した要素から新しいリストを作成する(list 1 2 3) ; (1 2 3)
引数を指定しない場合は空リストが生成される
(list) ; ()
リストの要素には任意の型の値を指定できる
(list "a" "b" "c") ; ("a" "b" "c")
入れ子にすることも可能
(list (list 1 2) (list 3 4)) ; ((1 2) (3 4))
list*
: 最後の引数を除いたすべての引数をリスト化し、最後の引数を連結した シーケンス を返す(list* 1 2 3 [4 5]) ; (1 2 3 4 5)
(list* 1 2 3 [4 5] [6 7]) ; (1 2 3 [4 5] 6 7)
最後の引数が連結できない型の場合、エラーを吐く(
IllegalArgumentException
)(list* 1 2 3 4 5)
list?
: 引数が IPersistentList
を実装しているか(map list? ['() [] #{} {}])
;; (true false false false)
(map list? [1 :keyword nil "string"])
;; (false false false false)